package com.chatplus.application.domain.dto;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.io.Serializable;

/**
 * SD 参数
 **/
@JsonIgnoreProperties(ignoreUnknown = true)
@Data
public class SdParamsDto implements Serializable {

    /**
     * task_id : task(aruwc3ba5n3rlqr)
     * prompt : Create a striking portrait of Xi Jinping, capturing the essence of his leadership and wisdom. Use bold brushstrokes to depict his strong and determined expression, conveying his authoritative presence. Render his distinctive features with precision, showcasing his iconic hairstyle and friendly smile. Utilize a color palette of deep reds and rich golds to symbolize power and prosperity. Add subtle highlights and shadows to enhance depth and dimension, giving the portrait a lifelike quality. Imagine Xi Jinping in a dignified and regal pose, exuding confidence and charisma. Illuminate the picture with soft, warm lighting to create a sense of warmth and approachability. Bring this portrait to life with attention to detail and a careful balance of realism and artistic interpretation.
     * negative_prompt : nsfw, paintings,low quality,easynegative,ng_deepnegative ,lowres,bad anatomy,bad hands,bad feet
     * steps : 30
     * sampler : Euler a
     * face_fix : false
     * cfg_scale : 7
     * seed : 647598606
     * height : 1024
     * width : 1024
     * hd_fix : false
     * hd_redraw_rate : 0.5
     * hd_scale : 2
     * hd_scale_alg : Latent
     * hd_steps : 15
     */
    @JsonProperty("task_id")
    private String taskId;
    @JsonProperty("prompt")
    private String prompt;
    @JsonProperty("negative_prompt")
    private String negativePrompt;
    @JsonProperty("steps")
    private int steps;
    @JsonProperty("sampler")
    private String sampler;
    @JsonProperty("face_fix")
    private boolean faceFix;
    @JsonProperty("cfg_scale")
    private int cfgScale;
    @JsonProperty("seed")
    private int seed;
    @JsonProperty("height")
    private int height;
    @JsonProperty("width")
    private int width;
    @JsonProperty("hd_fix")
    private boolean hdFix;
    @JsonProperty("hd_redraw_rate")
    private double hdRedrawRate;
    @JsonProperty("hd_scale")
    private int hdScale;
    @JsonProperty("hd_scale_alg")
    private String hdScaleAlg;
    @JsonProperty("hd_steps")
    private int hdSteps;
}
